package com.cccyy.date;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class testSetDate {

  public static void main(String[] args) {
    Date now = new Date();
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(now);
    int months = calendar.get(Calendar.MONTH) + 1;
    int day = calendar.get(Calendar.DAY_OF_MONTH);
    int year = calendar.get(Calendar.YEAR);
    if (months <= 3) {
      if (day < 21) {
        calendar.set(Calendar.MONTH, 2);
      } else {
        calendar.set(Calendar.MONTH, 5);
      }
    } else if (months <= 6) {
      if (day < 21) {
        calendar.set(Calendar.MONTH, 5);
      } else {
        calendar.set(Calendar.MONTH, 8);
      }
    } else if (months <= 9) {
      if (day < 21) {
        calendar.set(Calendar.MONTH, 8);
      } else {
        calendar.set(Calendar.MONTH, 11);
      }
    } else if (months <= 12) {
      if (day < 21) {
        calendar.set(Calendar.MONTH, 11);
      } else {
        calendar.set(Calendar.MONTH, 2);
        calendar.set(Calendar.YEAR, year + 1);
      }
    }
    calendar.set(Calendar.DAY_OF_MONTH, 21);

    SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
    System.out.println(sf.format(calendar.getTime()));
  }

  //  public static void main(String[] args) throws ParseException {
  //    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  //    Date date=getMonthDate(new Date(),3);
  //    System.out.println("3个月后的时间:"+sdf.format(date));
  //  }
  //
  //
  //  /**
  //   * 获取startDate日期后month月的日期
  //   * @param startDate 开始日期
  //   * @param month  几个月后
  //   * @return
  //   */
  //  public static Date getMonthDate(Date startDate,int month){
  //    LocalDateTime localDateTime = startDate.toInstant()
  //            .atZone(ZoneId.systemDefault() )
  //            .toLocalDateTime().plusMonths(month).plusDays(21);
  //    Date date = Date.from(localDateTime.atZone( ZoneId.systemDefault()).toInstant());
  //    return date;
  //  }
}
